$(function () {
  //1.初始化Table
  var oTable = new TableInit();
  oTable.Init();
  //2.初始化Button的点击事件
  var oButtonInit = new ButtonInit();
  oButtonInit.Init();
});
var TableInit = function () {
  var oTableInit = new Object();
  //初始化Table
  oTableInit.Init = function () {
    $('#tb_departments').bootstrapTable({
      url: 'getcodelist',		 //请求后台的URL（*）
      method: 'get',      //请求方式（*）
      toolbar: '#toolbar',    //工具按钮用哪个容器
      striped: true,      //是否显示行间隔色
      cache: true,      //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
      pagination: true,     //是否显示分页（*）
      sortable: true,      //是否启用排序
      sortOrder: "asc",     //排序方式
      queryParams: oTableInit.queryParams,//传递参数（*）
      sidePagination: "server",   //分页方式：client客户端分页，server服务端分页（*）
      pageNumber:1,      //初始化加载第一页，默认第一页
      pageSize: 10,      //每页的记录行数（*）
      pageList: [10, 25, 50, 100],  //可供选择的每页的行数（*）
      search: false,      //是否显示表格搜索，此搜索是客户端搜索，不会进服务端，所以，个人感觉意义不大
      strictSearch: true,
      showColumns: false,     //是否显示所有的列
      showRefresh: false,     //是否显示刷新按钮
      minimumCountColumns: 2,    //最少允许的列数
      clickToSelect: true,    //是否启用点击选中行
      //height: 550,      //行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
      uniqueId: "pid",      //每一行的唯一标识，一般为主键列
      showToggle:false,     //是否显示详细视图和列表视图的切换按钮
      cardView: false,     //是否显示详细视图
      detailView: false,     //是否显示父子表
      responseHandler:responseHandler,
      columns: [{
        checkbox: true
      }, {
        field: 'codeKey',
        title: '键名'
      }, {
        field: 'codeValue',
        title: '键值'
      }]
    });
  };
  //得到查询的参数
  oTableInit.queryParams = function (params) {
    var temp = {   //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
      limit: params.limit,   //页面大小
      offset: params.offset,  //页码
      departmentname: $("#txt_search_departmentname").val(),
      order:params.order,
      statu: $("#txt_search_statu").val()
    };
    return temp;
  };
  return oTableInit;
};
var ButtonInit = function () {
  var oInit = new Object();
  var postdata = {};
  oInit.Init = function () {
    //初始化页面上面的按钮事件
  };
  return oInit;
};

$(function () {
	$("#btn_query").bind("click",function(){
		$('#tb_departments').bootstrapTable('refresh');
	});
});
function responseHandler(res) {
	return res;
}
function showlock(){
	window.parent.window.lock();
	return false;
}
function add(){
	var val = new validate({
		/*rules里面是检验规则，
		*key为需要检验的input的id,
		*value为此input对应的检验规则
		*/
		rules:{
			codeKey:"notEmpty",  
			codeValue:"notEmpty"
		},
		/*submitFun里面为检验成功后要执行的方法*/
		submitFun:function(){
			var code = new Object();
			code.codeKey=$("#codeKey").val();
			code.codeValue=$("#codeValue").val();
			var options = {
		            url: 'doSave',
		            type: 'post',
		            dataType: 'json',
		            data:code,
		            success: function (data) {
		            	if(data.success){
		                	refreshTable();
		                	$("#modal").remodal().close();
		                }
		            	swal(data.msg);
		            }
		        };
		 $.ajax(options);
		}
	})
}
function edit(pid){
	var val = new validate({
		/*rules里面是检验规则，
		*key为需要检验的input的id,
		*value为此input对应的检验规则
		*/
		rules:{
			codeKey:"notEmpty",  
			codeValue:"notEmpty"
		},
		/*submitFun里面为检验成功后要执行的方法*/
		submitFun:function(){
			var code = new Object();
			code=$('#tb_departments').bootstrapTable('getRowByUniqueId',pid);
			code.codeKey=$("#codeKey").val();
			code.codeValue=$("#codeValue").val();
			code.createTime=new Date(code.createTime);
			var options = {
	            url: 'doUpdate',
	            type: 'post',
	            dataType: 'json',
	            data:code,
	            success: function (data) {
	                if(data.success){
	                	refreshTable();
	                	$("#modal").remodal().close();
	                }
	                swal(data.msg);
	            }
	        };
			$.ajax(options);
		}
	})
}
function addShow(){
	$("#modalTitle").text("新建常量");
	$("#codeKey").val('');
	$("#codeValue").val('');
	$("#Config").attr('onclick','add()');
	$("#modal").remodal().open();
}
function editShow(){
	var selects = $("#tb_departments").bootstrapTable('getSelections');
	if(selects.length>0){
		if(selects.length==1){
			$("#modalTitle").text("修改常量");
			$("#codeKey").val(selects[0].codeKey);
			$("#codeValue").val(selects[0].codeValue);
			$("#Config").attr('onclick','edit('+selects[0].pid+')');
			$("#modal").remodal().open();
		}else{
			swal("修改只能选择1行数据");
		}
	}else{
		swal("至少选择1行数据");
	}
}
function deletebypid(){
	var selects = $("#tb_departments").bootstrapTable('getSelections');
	var pids=new Array();
	for (var i=0;i<selects.length;i++){
		pids[i]=selects[i].pid;
	}
	var options = {
            url: 'logicDelete',
            type: 'post',
            dataType: 'json',
            data:{'pids':JSON.stringify(pids)},
            success: function (data) {
            	 if(data.success){
	                	refreshTable();
	                }
	             swal(data.msg);
            }
        };
	$.ajax(options);
}
function deleteCon(){
	var selects = $("#tb_departments").bootstrapTable('getSelections');
	if(selects.length>0){
		swal({   title: "你确定要删除?",  
			text: "用户删除后将无法找回!",  
			type: "warning",   
			showCancelButton: true,   
			confirmButtonColor: "#DD6B55",
			confirmButtonText: "确定!",
			cancelButtonText: "取消",
			closeOnConfirm: false },
			function(){   
				deletebypid();
			});
	}else{
		swal("至少选择1行数据");
	}
}
function refreshTable(){
	$("#tb_departments").bootstrapTable('refresh');
}